package com.laowang.project.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.laowang.common.utils.aip.CarInfo;
import com.laowang.common.utils.aip.IdCard;
import com.laowang.framework.aspectj.lang.annotation.Excel;
import com.laowang.framework.web.domain.PageObject;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.*;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;

/**
 * 车友通讯录对象 my_car_book
 *
 * @author laowang
 * @date 2023-04-20
 */
@NoArgsConstructor
@Data
public class MyCarBook extends PageObject implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    @ApiModelProperty(value = "${comment}", required = false)
    private Integer id;

    /**
     * 名称
     */
    @Excel(name = "名称")
    @ApiModelProperty(value = "名称", required = false)
    private String name;

    /**
     * 群名称
     */
    @Excel(name = "群名称")
    @ApiModelProperty(value = "群名称", required = false)
    private String groupName;

    /**
     * 行业
     */
    @Excel(name = "行业")
    @ApiModelProperty(value = "行业", required = false)
    private String industry;

    /**
     * 头像
     */
    @Excel(name = "头像")
    @ApiModelProperty(value = "头像", required = false)
    private String headImg;

    /**
     * 副牌
     */
    @Excel(name = "副牌")
    @ApiModelProperty(value = "副牌", required = false)
    private String subCard;

    /**
     * 用户id
     */
    @Excel(name = "用户id")
    @ApiModelProperty(value = "用户id", required = false)
    private Integer userId;

    /**
     * 0,未认证,1已认证
     */
    @Excel(name = "0,未认证,1已认证")
    @ApiModelProperty(value = "0,未认证,1已认证", required = false)
    private String isAuth;

    /**
     * 姓名
     */
    @Excel(name = "姓名")
    @ApiModelProperty(value = "姓名", required = false)
    private String realName;

    /**
     * 微信号
     */
    @Excel(name = "微信号")
    @ApiModelProperty(value = "微信号", required = false)
    private String wx;

    /**
     * 手机号
     */
    @Excel(name = "手机号")
    @ApiModelProperty(value = "手机号", required = false)
    private String phone;

    @Transient
    private String fupai;

    /**
     * 0单生,1结婚,2离异
     */
    @Excel(name = "0单生,1结婚,2离异")
    @ApiModelProperty(value = "0单生,1结婚,2离异", required = false)
    private String isSingle;

    /**
     * 行驶证
     */
    @Excel(name = "行驶证")
    @ApiModelProperty(value = "行驶证", required = false)
    //@NotBlank(message = "行驶证不能为空")
    private String drivingPermit;

    /**
     * 车辆照片
     */
    @Excel(name = "车辆照片")
    @ApiModelProperty(value = "车辆照片", required = false)
    private String carImg;

    /**
     * 车型
     */
    @Excel(name = "车型")
    @ApiModelProperty(value = "车型", required = false)
    private String carType;

    /**
     * 年龄
     */
    @Excel(name = "年龄")
    @ApiModelProperty(value = "年龄", required = false)
    private Integer age;

    /**
     * 兴趣爱好
     */
    @Excel(name = "兴趣爱好")
    @ApiModelProperty(value = "兴趣爱好", required = false)
    private String intrest;

    /**
     * 职业
     */
    @Excel(name = "职业")
    @ApiModelProperty(value = "职业", required = false)
    private String occupation;

    @ApiModelProperty(value = "兴趣爱好", required = false)
    private String remark;

    /** 0无,1企业,2门店,3都有 */
    @Excel(name = "0无,1企业,2门店,3都有")
    @ApiModelProperty(value = "0无,1企业,2门店,3都有", required = false)
    private String enterpriseStore;

    /** 加入原因 */
    @Excel(name = "加入原因")
    @ApiModelProperty(value = "加入原因", required = false)
    private String joinCause;

    /** 在俱乐部获得什么 */
    @Excel(name = "在俱乐部获得什么")
    @ApiModelProperty(value = "在俱乐部获得什么", required = false)
    private String getSome;

    /** 资源对接 */
    @Excel(name = "资源对接")
    @ApiModelProperty(value = "资源对接", required = false)
    private String resource;

    /** 籍贯 */
    @Excel(name = "籍贯")
    @ApiModelProperty(value = "籍贯", required = false)
    private String from;

    /** 车友群 */
    @Excel(name = "车友群")
    @ApiModelProperty(value = "车友群", required = false)
    private String group;

    /** 城市 */
    @Excel(name = "城市")
    @ApiModelProperty(value = "城市", required = false)
    private String city;

    /** 身份证 */
    @Excel(name = "身份证")
    @ApiModelProperty(value = "身份证", required = false)
    //@NotBlank(message = "身份证不能为空")
    private String idCard;

    /** 性别 */
    @Excel(name = "性别")
    @ApiModelProperty(value = "性别", required = false)
    private String gender;

    /** 生日 */
    @Excel(name = "生日")
    @ApiModelProperty(value = "生日", required = false)
    private String birthday;

    /** 验证方式1车车主本人,2车夫妻所有,3车公司所有,4车父母所有 */
    @Excel(name = "验证方式1车车主本人,2车夫妻所有,3车公司所有,4车父母所有")
    @ApiModelProperty(value = "验证方式1车车主本人,2车夫妻所有,3车公司所有,4车父母所有", required = false)
    private String verificationType;

    /** 结婚证 */
    @Excel(name = "结婚证")
    @ApiModelProperty(value = "结婚证", required = false)
    private String marryCertificate;

    /** 营业执照 */
    @Excel(name = "营业执照")
    @ApiModelProperty(value = "营业执照", required = false)
    private String businessLicense;

    /** 户口本 */
    @Excel(name = "户口本")
    @ApiModelProperty(value = "户口本", required = false)
    private String household;

    @ApiModelProperty(value = "自动校验1,0人工", required = false)
    private String autoCheck;

    @ApiModelProperty(value = "头衔", required = false)
    private String position;

    @ApiModelProperty(value = "认证车型", required = false)
    private String car;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "保险到期时间", required = false)
    private Date expirationInsurance;

    @ApiModelProperty(value = "权重", required = false)
    private Integer weight;

    @Transient
    private CarInfo carInfo;

    @Transient
    private IdCard cardInfo;
}
